$.extend({

});

(function( $ ){

    $.fn.panel_do = function() {

        var methods = {},
            br = $("<br/>"),
            label = $("<label/>");

        methods.edit = function(e, id){
            var text = e.parent().parent().parent().next().children("a").first().text();
            $.addTab(id, text);
            $(document).tooltip();
        }

        methods.move = function(e, flag){
            var id = parseInt(e.parent().parent().parent().attr("data-element"));
            $.ajax({
                url : $.ajax_path+"move.php",
                data: { id : id, flag : flag },
                dataType: "json",
                success: function(data){
                    if (!data.error && data.rows){
                        location.reload();
                    }
                },
                error: function(data){
                    console.log("error by move up/dow: ", data);
                }
            });
        }

        methods.remove = function(e, id){
            var w = $.add_new_window();
            w.html('<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Видалити дану гілку дерева?</p>')
                .dialog({
                    title: 'Видалити гілку дерева?',
                    resizable: false,
                    modal: true,
                    width: 400,
                    buttons: {
                        "Так" : function() {
                            $.ajax({
                                url: $.ajax_path+"remove_item.php",
                                data:{ id: id },
                                dataType: "json",
                                success: function(data){
                                    if (data.error==0 && data.flag){
                                        location.reload();
                                    }else{
                                        $.error_window("Error (delete)!");
                                    }
                                }
                            });
                        },
                        "Ні" : function() {
                            $( this ).dialog( "close" );
                        }
                    }
                });
        }
        methods.change_block = function(e, id){
            $.ajax({
                url: $.ajax_path+"change_block.php",
                data:{ id: id },
                dataType: "json",
                success: function(data){
                    if (data.error==0 && data.flag){
                        e.toggleClass("ui-icon-unlocked").toggleClass("ui-icon-locked");
                    }else{
                        $.error_window("Error (delete)!");
                    }
                }
            });
        }
        methods.show_hide = function(e, id){
            $.ajax({
                url: $.ajax_path+"change_visible.php",
                data:{ id: id },
                dataType: "json",
                success: function(data){
                    if (data.error==0 && data.flag){
                        e.toggleClass("ui-icon-pause").toggleClass("ui-icon-play");
                    }else{
                        $.error_window("Error (delete)!");
                    }
                }
            });
        }
        methods.add_chapter = function(e, id, flag){
            console.log("add_chapter", flag);
            var w = $.add_new_window(),
                name = $("<input/>", {css:{width:470}}),
                link = $("<input/>", {css:{width:470}}),
                label = $('<label/>',{html:"Назва пункту:"}).appendTo(w);
            br.clone().appendTo(w);
            name.appendTo(w);
            br.clone().appendTo(w);
            br.clone().appendTo(w);
            $('<label/>',{html:"Силка:"}).appendTo(w);
            br.clone().appendTo(w);
            link.appendTo(w);
            br.clone().appendTo(w);br.clone().appendTo(w);
            label.clone().html('Тип контенту').appendTo(w);
            br.clone().appendTo(w);

            var s_val  = [
                    { 'id' : 0, 'val': 0 },
                    { 'id' : 1, 'val': 1 },
                    { 'id' : 2, 'val': 2 },
                    { 'id' : 3, 'val': 3 },
                ],
                select = $('<select/>', {css:{width:470}}).appendTo(w);
            $.each(s_val, function(idex, value){
                $("<option/>", {value:value.id, html:value.val}).appendTo(select);
            });

            w.dialog({
                title: 'Додавання нового елемента дерева',
                resizable: false,
                modal: true,
                width: 500,
                buttons: {
                    "Додати" : function() {
                        $.ajax({
                            url : "/rapatij-cms/vikno.com.cv.ua/admin/ajax/add_new_item.php",
                            data : {
                                id : id,
                                flag : flag,
                                name : name.val(),
                                link : link.val(),
                                type : select.find("option:selected").val()
                            },
                            dataType : "json",
                            success: function(data){
                                if (!data.error && data.flag){
                                    location.reload();
                                }else{
                                    $( this ).dialog( "close" );
                                    $.error_window("Ошибка!");
                                }
                            }
                        });
                    },
                    "Відміна" : function() {
                        $( this ).dialog( "close" );
                    }
                }
            });
        }

        var make = function(){
            $(this).on("click", function(){
                var e = $(this).children("span"),
                    id = parseInt($(this).parent().parent().attr("data-element"));
                if (e.hasClass("ui-icon-pencil")){                  // edit
                    methods.edit(e, id);
                }else if (e.hasClass("ui-icon-arrowthick-1-n")){    // move up
                    methods.move(e, "up");
                }else if (e.hasClass("ui-icon-arrowthick-1-s")){    // move down
                    methods.move(e, "down");
                }else if (e.hasClass("ui-icon-close")){             // remove
                    methods.remove(e, id);
                }else if (e.hasClass("ui-icon-unlocked") || e.hasClass("ui-icon-locked")){          // block/unblock
                    methods.change_block(e, id);
                }else if (e.hasClass("ui-icon-pause") || e.hasClass("ui-icon-play")){   // show or hide
                    methods.show_hide(e, id);
                }else if (e.hasClass("ui-icon-circlesmall-plus")){  // add next chapter
                    methods.add_chapter(e, id, 0);
                }else if (e.hasClass("ui-icon-squaresmall-plus")){  // add children chapter
                    methods.add_chapter(e, id, 1);
                }else{
                    console.log("no detect what to do");
                }
            });
        };

        return this.each(make);
    };

})(jQuery);

$(document).ready(function(){
    $(this).tooltip();
    $("#icons > li").panel_do();

    $("#log_history > div").click(function(){
        var p = $(this).parent("div"),
            m = -255;
        p.toggleClass("open");
        if (p.hasClass("open")){
            m = -3;
        }
        p.animate({marginLeft:m},200);
    });

    $.check_tree();

    $("#icons li, div.pom_parent > div.link").hover(
        function() {
            $( this ).addClass( "ui-state-hover" );
        },
        function() {
            $( this ).removeClass( "ui-state-hover" );
        }
    );

    $("div.pom_parent > div.panel").hover(
        function() {
            $( this).next().addClass( "ui-state-hover" );
        },
        function() {
            $( this ).next().removeClass( "ui-state-hover" );
        }
    );

    $.init_tabs();

    /** setting options */
    $('#options').accordion({ heightStyle: "content" });

    $("#theme").selectmenu(0);

    $("button#save")
        .button()
        .click(function(event){
            var theme = $("#theme").val();
            if (typeof theme != "undefined"){
                $.cookie('cms_theme', theme, { expires: 7, path: '/' });
                location.reload();
            }
        });


    /** save tab position */
    $("#tabs > ul > li").click(function(){
        var all = $(this).parent().children(),
            val = all.index( $(this) );
        $.cookie('tab', val, { expires: 7, path: '/' })
    });

    /** show children-chapter */
    $("div.sc.ui-icon").on("click", function(){
        var value = 0;
        if ( $(this).hasClass("ui-icon-circlesmall-plus") ) value = 1;
        $.cookie('e'+$(this).next().attr("data-element"), value);
        $(this).toggleClass("ui-icon-circlesmall-plus").toggleClass("ui-icon-circlesmall-minus");
        $(this).parent().next().toggle();
    });
});